package com.sngamelib.topdownshooter;

public class Weapon
{
	private WeaponType damageType;
	private WeaponEffectType weapFXType;
	private float baseDamage;
	private float rof;
	private float projSpeed;
	private float weapFXModifier;
	private CycleTimer cycTimer;
	
	Weapon()
	{
		damageType = null;
		weapFXType = null;
		baseDamage = 0;
		rof = 0;
		projSpeed = 0;
		weapFXModifier = 0;
	}
	
	Weapon(Weapon _w)
	{
		damageType = _w.getDamageType();
		weapFXType = _w.getWeapFXType();
		baseDamage = _w.getBaseDamage();
		rof = _w.getROF();
		projSpeed = _w.getProjSpeed();
		weapFXModifier = _w.getWeapFXModifier();
	}
	
	Weapon(WeaponType _dt, WeaponEffectType _wfxt, float _bd, float _rof, float _ps, float _wfxm)
	{
		damageType = _dt;
		weapFXType = _wfxt;
		baseDamage = _bd;
		rof = _rof;
		projSpeed = _ps;
		weapFXModifier = _wfxm;
	}
	
	public WeaponType getDamageType()
	{
		return damageType;
	}
	
	public WeaponEffectType getWeapFXType()
	{
		return weapFXType;
	}
	
	public float getBaseDamage()
	{
		return baseDamage;
	}
	
	public float getROF()
	{
		return rof;
	}
	
	public float getProjSpeed()
	{
		return projSpeed;
	}
	
	public float getWeapFXModifier()
	{
		return weapFXModifier;
	}
	
	public void setDamageType(WeaponType _dt)
	{
		damageType = _dt;
	}
	
	public void setWeapFXType(WeaponEffectType _wfxt)
	{
		weapFXType = _wfxt;
	}
	
	public void setBaseDamage(float _bd)
	{
		baseDamage = _bd;
	}
	
	public void setROF(float _rof)
	{
		rof = _rof;
	}
	
	public void setProjSpeed(float _ps)
	{
		projSpeed = _ps;
	}
	
	public void setWeapFXModifier(float _wfxm)
	{
		weapFXModifier = _wfxm;
	}
	
	public void fireWeapon()
	{
		cycTimer.start();
		//do geometry shit on the shot fired
	}
	
}
